//递归写法
// var removeElements = function(head, val) {
    // if(head == null){
    //     return head
    // } 
    // head.next = removeElements(head.next,val)
    // return head.val === val ? head.next : head

// }

//哨兵写法  用一个哨兵指向头结点  返回的时候只需要返回哨兵.next  
var removeElements = function(head, val) {
    let ele = {
        next: head 
    }
    let p = ele
    while(p.next){
        if(p.next.val == val){  //判断的时候看的是  next.val 如果看的是当前元素的val 那么最后一个节点将不能被判断
            p.next = p.next.next
        }else{
            p = p.next
        }
    }
    return ele.next
}



